Software is typically created in a three-system landscape that includes a DEV system, a QUAL (e.g. test) system, and a PROD system. Software configuration changes are first made in the DEV system and then loaded to the QUAL system where the configuration can be tested. Once tested, the configuration can then be loaded into the PROD system for use by customers in a live setting. As new versions of the software are created, each system within the landscape is sequentially upgraded to the new version.
During the upgrade procedure of a system, changes to the system can be restricted to maintain persistency in the data. This is because changes made to a system while the system is in the middle of an upgrade procedure are sometimes not migrated over to the upgraded system. This can result in data loss, data corruption, or unexpected behavior. To restrict changes from being made during an upgrade, the system is locked. The lock creates a period of downtime where customization and development of the system is blocked as users are unable to make changes to the system. During these locked periods (which can last days to weeks), the customer either takes time off or continues development in a duplicated system. Both options are undesirable to the customer since they slow down or complicate business processes. Thus, minimizing the effects of the downtime is highly desirable to improve productivity.